home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 September
/
CHIP Eylül 1998.iso
/
Slackwar
/
docs
/
Netatalk-HOWTO
< prev
next >
Wrap
Text File
|
1997-02-23
|
24KB
|
449 lines
Linux Netatalk-HOWTO
Last updated: December 22, 1997
by Anders Brownworth
_________________________________________________________________
Netatalk is a program which lets your Unix box look like an
Appletalk fileserver on a LAN. This document is intended as a guide
to help the Linux system administrator set up netatalk Appletalk
services on a Linux box. Linux is a freely distributable POSIX
compliant U*ix for 386, 486, Pentium, PowerMacintosh, Sun and DEC
Alpha hardware as well as several other experimental platforms.
(SGI, etc...) Netatalk is a program which exports a piece of the
Unix filesystem via the appletalk protocol. Using Netatalk,
Macintosh computers can mount Unix volumes as if they were standard
Appletalk network drives.
Netatalk is brought to you by our friends at The Research Systems
Unix Group, The University of Michigan. netatalk@umich.edu
Hugh Dixon is running the UK mirror of the Netatalk-HOWTO and Horie
Seiichi is mantaining a Japanese version of this document.
I have started a Netatalk Counter which you should fill out after
your setup is completed. With your help, we can get an idea of how
Netatalk is being used. Note: this is for non-linux installs also!
Comments and corrections are very welcome. Someone had sent me a
diff of my pages correcting my horrible spelling, and I proceeded
to blow away my mailbox by mistake, so if you're out there, please
resend that! I If you have problems, usually a good place to post
them is to the appropriate Netatalk list.
Want to know who's logged on a netatalk server? Try nu.
______________________________________________________________
Before you begin:
* You might want to look at some hardware / software suggestions.
* A section specific to netatalk on SparcLinux is available.
What you need:
* Computer running Linux kernel 1.2.* or later installed with source
and compilers
* An ethernet card with a driver capable of multicasting (most
drivers out there do this but some drivers such as the Intel
EtherExpress don't)
* LAN with a Mac (don't really need this but then, what's the
point?)
* The Netatalk program.
+ Source code for netatalk-1.3.3
+ If you want to fool with the latest beta, it's
netatalk-1.4b2.tar.gz (people are seeing twice the speed with
far less CPU utilization with this beta)
+ If you prefer, you can get the Netatalk binary RPM from
RedHat and skip most of the setup discussed below.
+ A patch to compile netatalk 1.4b2 under RedHat 5.0 is
available.
What you will do:
* Get and decompress the netatalk source code.
* Follow the 1.2.* kernel guide if you are using a 1.2.* kernel.
(2.* and later kernels need no modification)
* Follow the Netatalk-1.3.3 patch guide to fix a few bugs
* Configure netatalk source code.
* Compile netatalk.
* Install netatalk.
* Compile a kernel with appletalk services.
* Configure netatalk's options.
* Start up the server.
* Mount your new volume on the Mac.
* Look at some other topics of intrest.
(If you were wondering why I have you compile a kernel after you
install netatalk, it's because kernel 1.2.* users patch that
kernel's appletalk support during "install netatalk" with the
kinstall rule which has since been taken out of the netatalk
package as the kernel 1.3.* and higher appletalk implimentations
don't need patching.)
______________________________________________________________
Get and decompress the netatalk source code
1. Get a copy of the latest source code.
2. Put the source code where you want to unpack it
3. Decompress the source code. Type:
gzip -d netatalk-1.3.3.tar.gz
4. Unpack the distribution. Type:
tar -xvf netatalk-1.3.3.tar
______________________________________________________________
Netatalk and Kernel Specific Setup
* Follow the 1.2.* kernel guide if you are using a 1.2.* kernel.
* Follow the Netatalk-1.3.3 patch guide to fix a few bugs.
______________________________________________________________
Configure the netatalk source code
Note: If you want to build for the Andrew File System, there are
things you need to do before continuing. Please refer to the
README.AFS document in the source distribution.
1. Set up paths. Edit your Makefile to reflect the install path and
the man path. In Makefile, edit the line:
DESTDIR=/usr/local/atalk
to reflect where you want netatalk to install all it's files. Edit
the line:
MANDIR={DESTDIR}/man
to reflect where you want netatalk to install it's man pages. I
set my MANDIR like this:
MANDIR=/usr/local/atalk/man
(it's really saying the same thing as before)
______________________________________________________________
Compile the netatalk program
1. In your netatalk directory, type:
make
This will make all netatalk binaries. Make sure you get through
all of the compilation without a fatal error. Fatal errors mean
things didn't compile for one reason or another. Don't just
continue. Go back and try to figure out what went wrong.
______________________________________________________________
Install the netatalk program
1. In your netatalk directory, type:
make install
This will install netatalk in the DESTDIR which you set in the
Makefile.
Note: make install does not install the configuration files
necessary to run netatalk.
______________________________________________________________
Compile a kernel with appletalk services
Note: Many Linux distributions with a 2.0 kernel (such as Debian
Linux) contain precompiled appletalk support, so you may not need
to do this. Check your configuration with a make menuconfig from
the /usr/src/linux/ directory. Note: You need to have TCP/IP up and
running also on the network card you plan to use for Appletalk
because kernel Appletalk support doesn't contain all the framing
code necessary to run Appletalk alone. You should really have
experience compiling a kernel. If you don't, look through your
Kernel-HOWTO docs. (usually at /usr/doc/faq/howto/Kernel-HOWTO.gz
in Slackware Linux. Look at it with the command: zless
/usr/doc/faq/howto/Kernel-HOWTO.gz)
1. Goto your linux source root directory (usually /usr/src/linux)
2. Type make config (or make menuconfig, pick your poison..)
3. Answer the questions corrosponding to your setup.
+ Be sure to answer yes to Configure AppleTalk DDP support? [n]
+ With older kernels (pre 1.3.*), you need IEEE802.2 support.
Answer yes to Configure IPX support [n] as the IPX package
includes IEEE802.2 interface support. (later 1.3.* kernel
distributions do not require this as later 1.3.* kernel
sources include IEEE802.2 support in their appletalk)
4. Do a make dep; make clean to set up your source code for compile.
5. Make a new kernel. If you haven't done this before, consult your
Kernel-HOWTO docs. Kernels are made with differient commands
depending on what result you want. (When I compile, I use the
command make zImage.)
Note:You can build appletalk support as a module if you like.
6. Copy your old kernel somewhere just incase the new kernel you just
compiled decides to hate you and grind to a screaching halt!
7. Install your new kernel and reboot your system on it. WARNING!! If
you messed something up, your system will not come up! Consult
your HOWTO docs for kernel installation.
______________________________________________________________
Configure the options
Note: This document concerns itself with Appletalk file services. I
do not go into the various print options. You will notice the print
options commented out in the examples. Mike Pearson and Bill
McGonigle have prepared a page on printing.
1. Make yourself an atalkd.conf file. In the netatalk source
directory under etc/atalkd you will find a file called
etc.atalkd.conf. Usually this file gets edited and copied to your
netatalk DESTDIR/etc (/usr/local/atalk/etc) directory and renamed
atalkd.conf. Instructions and examples on how to edit the
atalkd.conf file are available.
2. Make yourself an AppleVolumes.default and an AppleVolumes.system
file. These files tell the system which directories to offer as
Appleshare volumes. In the netatalk source directory under
etc/afpd you will find two a files called etc.AppleVolumes.default
and etc.AppleVolumes.system. Usually these files get edited and
copied to your netatalk DESTDIR/etc (/usr/local/atalk/etc)
directory and renamed AppleVolumes.default and AppleVolumes.system
respectively. Instructions and examples on how to edit these files
are available.
3. (if you were setting up the printing options, you would do so
here.)
4. Edit your /etc/services file to include the following Appletalk
services:
rtmp 1/ddp # Routing Table Maintenance Protocol
nbp 2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol
The /etc/services file tells your computer what service to use
when network requests go in or out.
If you are using NIS (network information system, or YP), don't
add these lines to the services file. Add them to your NIS master
machine's maps and push them.
5. In your source distribution, edit your rc.atalk script to launch
your Appletalk services. Here's what I use:
ATALKDIR="/usr/local/atalk"
echo 'Starting Appletalk fileserver...'
${ATALKDIR}/etc/atalkd
echo -n 'atalkd'
${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed
's/\..*$//'`:Workstation
${ATALKDIR}/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk
echo -n ' nbprgstr'
${ATALKDIR}/etc/afpd
echo ' afpd.'
Note: It is important not to launch any of these services in the
background as their network data structures need time to stablize.
6. Set Appletalk services to automagically start when the system is
rebooted. In the source distribution directory, move the rc.atalk
file to your /etc/rc.d directory and make it executable. (chmod
755 /etc/rc.d/rc.atalk) In your /etc/rc.d directory, edit the file
rc.local to launch the rc.atalk script. Add the following line to
your rc.local:
/etc/rc.d/rc.atalk
7. In order for someone to mount the volumes you have created on your
Linux box, they need to have a valid shell account on the Linux
system. AppleShare limits passwords to 8 characters, so you want
to add users to your Linux system with 8 character or less
passwords. A valid shell account means that somthing like /bin/sh
or /bin/tcsh is at the end of that user's entry in the /etc/passwd
file. If you just pipe to /dev/null the user will not be able to
login. Root logins are prohibited by netatalk, and for good
reason. Just don't!
______________________________________________________________
Start up the server
Assuming everything has been installed and configured correctly,
you should have no problem turning on Appletalk services.
1. Fire up Appletalk server. In your /etc/rc.d directory, run the
script rc.atalk. Now sit back and wait a minute or so as the
system checks out the network and sets itself up. The rc.atalk
script will normally be run at system boot time.
______________________________________________________________
Mount your new volume on the Mac
Now we get to have some fun!
1. Move over to a Macintosh connected to the ethernet.
2. Go to the Chooser from the Apple Menu.
3. Click on the little hand holding a platter. (Appleshare services)
Note: Appletalk must be active to do this. If it's not active,
click the little button Active on Restart and restart the machine.
If it still doesn't show up, the Mac may be listening to it's
LocalTalk port rather than the EtherTalk port. To fix this, go to
the Networks control pannel and click on EthetTalk, then try the
Chooser again.
4. Login to the Appleshare server using a valid username on your Unix
system. If the Unix user you logged in as doesn't have permission
to write in the exported directory, the Appleshare volume will
mount as read-only. (this is granted this user has read
privilages!) If you change directory permissions after a volume is
mounted, you will have to throw away the volume and re-mount it
for afpd to re-read the permissions. (afpd reads directory and
file permissions every time the volume gets mounted)
5. You should see your Unix workstation in the window to the right.
Double click it and it should give you the volumes you made
available in your AppleVolumes.system and AppleVolumes.default
files.
6. Click on the volumes you want to mount. (Shift click will give you
more than one)
7. Click OK and smile with wide-eyed wonder as your Linux volumes are
now available on your Macintosh!
8. To unmount a mounted server, throw it in the trash. Don't worry,
this won't delete the volume! (slight metaphoric inaccuracy on
Apple's part ;)
______________________________________________________________
Other stuff
* Users of RedHat 5.0 may have difficulty compiling netatalk1.4b2
without the patched source or patch from Charles Barrasso. For the
most part, it just adds several #include lines. Because RedHat
uses shadow passwords, it also defines -DSHADOWPW.
I wrote a tiny perl script called nu that gives you a list of the
users that have afpd processes up. To use it, download it from the
above link, and save it. Do a chmod +x nu to it so you can execute
it. (requires perl) Let me know if you like it.
If you are having problems, there is a tips page which I am posting
for your browsing. These tips are from users like you who have
overcome various problems the hard way so that you don't have to!
I may not have had the same problems addressed in this page, so I
can't vouch for it's integrity.
Jay Schulist has a page on Localtalk with Linux, covering a driver
he wrote called "Cops" and applicable hardware for connecting a
Localtalk network and a Linux machine. There is a patch for 2.0.30
kernels and the driver is included in the 2.1.44 and greater
kernels. There are also some notes on IP over Localtalk.
Bill McGonigle is mantaining a Netatalk page with a great
troubleshooting guide.
Rob Newberry's Linux Services for Macintosh and Windows Users
The Real Netatalk Homepage at the University of Michigan
Windows print and file services for linux with Samba
MkLinux: Linux for the PowerMac supporting netatalk 1.3.3
SparcLinux, Linux on Sun Sparc hardware.
Linux Ports from Yahoo.
A listserv has been set up for announcements and general netatalk
discussion. It's a low volume moderated list. You can subscribe by
sending mail to netatalk-admins-request@umich.edu. Submissions
should be sent to netatalk-admins@umich.edu.
A Linux specific netatalk listserv is also available. Subscribe to
it by sending mail to listserv@netspace.org with no subject and a
body which reads SUBSCRIBE LINUX-ATALK (Your Full Name). To
unsubscribe, send mail to the same place with the message text
UNSUBSCRIBE LINUX-ATALK. Posts to this listserv should be sent to
linux-atalk@netspace.org.
* A significant differience between the netatalk-1.3.3.b2 code and
the netatalk-1.3.3 code is the 1.3.3 code does not include the
kinstall option in it's make. Kinstall is used to patch appletalk
support into the 1.2.* kernel. As of kernel 1.3.*, appletalk
support is included in the kernel, so you don't need the beta.
Older 1.3.* kernels have a "broken" implimentation of appletalk,
so avoid 1.3.* kernels prior to 1.3.9.
* It has been discussed that there is possibly a multicast reading
problem with the Intel EtherExpress driver for Linux which will
make the netatalk server on that box not to show up in the
chooser. It seems the option is commented out like so in the
eexpress.c file:
set_multicast_list(struct device *dev, int num_addrs, void *addrs)
{
/* This doesn't work yet */
#if 0
short ioaddr = dev->base_addr;
....
There has been quite a bit of words on what "This doesn't work
yet" is supposed to mean... ;)
In general I have had awefull luck with my Intel EtherExpress
cards. Personally I like to stick to a nice 3Com 509 card or
somthing like that. 3Com's 59x PCI Vortex cards are the best for
PCI based machines.
* Some people have expressed the want to use a differient icon for
the netatalk volume. One way to do this is to do a "Get Info" on
an icon you want to use. Next, select the icon in the Get Info
window. (when it's highlighted, you should see a little black box
around the icon) Do a Copy. Do a "Get Info" with the linux volume
selected. Click on the "world-on-a-platter" icon, and do a Paste.
Whalah!
* Sam Woolf passed allong a tip he found if the above method of
changing a Netatalk server icon fails. He mentions a utility from
Aladdin Systems called Rejuvenator that fixes corrupt server and
folder icons.
* For Netatalk 1.3.3, support for shadowed passwords can be achieved
by substituting this auth.c file for the origional one in
etc/afpd. Re-compile your afpd binary with the -DSHADOW_PASSWORD
option to build an afpd with shadow password support. To do this,
edit etc/afpd/Makefile and add -DSHADOW_PASSWORD to the list of
CFLAGS. The netatalk 1.4b2 package doesn't need the patch. Just
compile with -DSHADOWPW.
* An interesting point: Paul Hargrove has written hfs for linux. To
put it in a nut-shell, he made it so you can mount and have read
and limited write access to macintosh volumes on your Linux box. I
am using it to make Macintosh CD-ROMS mounted on my Linux box via
hfs, available through netatalk to my Macintosh users. Give it a
try if you are up for it. I've had good luck with it. To use hfs
with netatalk, you want to mount a disc with the fork=netatalk
option. (ie: mount -t hfs -o fork=netatalk /dev/your_cd
/where_you_want_it_mounted)
* On my linux / netatalk box, I also run a program called samba. If
you are not familiar with it, samba enables file and print
services for Windows users from Linux. (or any Unix for that
matter) I serve CD-ROMS, writeable volumes, and print services to
Windows and Macintosh users with samba, hfs and netatalk all on
one Linux system. (not to mention the web servers, proxy server,
mail and news which are also run from this little Dell 486 DX2/66!
It's the Library machine for The Stony Brook School)
* If you want to change the name of a server as it appears in the
chooser, call afpd with the -n option. I like to have the server
name capitalized, so I call afpd like this:
afpd -n "Eyore"
making Eyore show up as the server name instead of the (all
lowercase) hostname eyore.
* Werner Eugster has prepared a printing HOWTO and Mike Pearson and
Bill McGonigle have written a printing page covering the printing
issues which I have so skillfully avoided in these pages! ;)
* Linux has been ported to the PowerMac by Apple and OSF-RI. The
result of their work is called MkLinux. I'm writing this on a
Radius 81/110 PowerMac colone running MkLinux! However, the most
interesting thing is that netatalk-1.3.3 has been ported to
MkLinux by Michel Pollet so your Mac running Linux can still run
as an AppleShare fileserver!
MkLinux runs on the Mach 3.0 microkernel, so what I would love to
see would be a port of the MacOS which would either run as a Linux
process, or just another OS on the Mach kernel! I have two
monitors on my PowerMac. MacOS could run on one screen with X on
the other. Move your mouse from X over to MacOS on the same box.
The perfect developer's environment!
* Several people have asked what I did to make my Mac interface look
"3D" as it does on the top of this page. Well, it's not me, it's
the fault of Aaron, a cool extension by Greg Landweber. (actually
now greatly enhanced in Kaleidoscope, Greg's new product) You can
freely evaluate it by downloading it and dropping it into the
extensions folder in your system folder and rebooting your Mac.
* Interested in what this page really looks like in Japanese?
* Just incase anyone hadn't noticed, I name my computers after
cartoon characters. (hence the names in the examples above) For
those of you who have asked for an explanation, other than the
obvious Calvin from Calvin and Hobbes, Thak is the name of the
cavemen with the big body and tiny head commonly appearing in Gary
Larson's The Far Side.
[INLINE] I'm looking for a job, so if you can help, it would be
greatly appreciated.
If this little guide has been helpfull with your installation,
please drop me a note stating so. I'd like to find out if all the
work I've put into this project has helped anyone out. If you wish
to thank me, you may do so best by asking around to see if there
are any old Silicon Graphics workstations that are unused. I would
be very interested in removing them as I'm fostering a collection
of antiquities. ;) Thanks!
______________________________________________________________
This page mantained by Anders Brownworth. Copyright ⌐ 1997